package com.hanamaki.study.day02;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class SeleniumElementPosition03 {

    //注册驱动
    WebDriver driver;

    // 导航对象
    WebDriver.Navigation navigation;

    @BeforeMethod
    public void setUp() {

        //注册本地火狐打开的位置
        System.setProperty("webdriver.gecko.driver", "C:\\Program Files\\Mozilla Firefox\\geckodriver.exe");
        //初始化
        driver = new FirefoxDriver();

        navigation = driver.navigate();
    }

    /**
     * 操作的是  物业名称 文本框
     * @throws InterruptedException
     */
    @Test
    public void test() throws InterruptedException {
        /* 注册 浏览器打开的 资源路径 */
        driver.get("file:///C:/Users/Administrator/Desktop/testhtml/exam/House.html");

        /* 表单总 的  物业名称 文本框元素定位的方式   xpath   cssSelector */
/*  1. 使用 xpath 方式 定位 ：//input[@class='uname']      */
        WebElement wymc = driver.findElement(By.xpath("//input[@class='uname']"));
        /* 在向 文本框中 输入值的时候  一定要注意  文本框中的是默认值还是  提示信息 */
        wymc.clear();
        /* sendKeys:代表向元素指定的标签中写入值 */
        wymc.sendKeys("hanamaki");

        Thread.sleep(1000);
        wymc.clear();
/*  2. 使用 css 方式 定位 ：input[class='uname']   */
        wymc=driver.findElement(By.cssSelector("input[class='uname']"));
        wymc.sendKeys("andy");

        Thread.sleep(1000);
        wymc.clear();
/*  2.1 使用 css 方式 中的  类选择器  来定位所需要的元素  类选择去  class   .   */
        wymc=driver.findElement(By.cssSelector("input.uname"));
        wymc.sendKeys("yutou");

        Thread.sleep(1000);
        wymc.clear();
 /*  3. 使用  标签中  name属性的值的 方式 定位 ：username   */
        wymc=driver.findElement(By.name("username"));
        wymc.sendKeys("jixiang");

        Thread.sleep(1000);
        wymc.clear();
/*  4. 使用  标签中  class 属性的值的 方式 定位 ：uname   */
        wymc=driver.findElement(By.className("uname"));
        wymc.sendKeys("ruyi");
    }

    /**
     * 操作的是  Email 文本框
     * @throws InterruptedException
     */
    @Test
    public void email() throws InterruptedException {
        /* 注册 浏览器打开的 资源路径 */
        driver.get("file:///C:/Users/Administrator/Desktop/testhtml/exam/House.html");

        /* 表单中 的  email 文本框元素定位的方式   xpath   cssSelector */
/*  1. 使用  xpath 的方式 来定位  email的 文本框      */
        WebElement email = driver.findElement(By.xpath("//input[@type='email']"));
        email.clear();
        email.sendKeys("123@qq.com");

        Thread.sleep(1000);
        email.clear();
 /*  2. 使用  css 的方式 来定位  email的 文本框      */
        email = driver.findElement(By.cssSelector("input[type='email']"));
        email.clear();
        email.sendKeys("789@qq.com");

        Thread.sleep(1000);
        email.clear();
/*  2.1 使用  css 的方式 来定位  email的 文本框   使用 css中的 id选择器选择 所需要的元素   #   */
        email = driver.findElement(By.cssSelector("input#email"));
        email.clear();
        email.sendKeys("523@qq.com");


        Thread.sleep(1000);
        email.clear();
/*  3 使用  id 的方式 来定位  email的 文本框    */
        email = driver.findElement(By.id("email"));
        email.clear();
        email.sendKeys("qwe@qq.com");




        /* 在页面中 有一个 物业名称文本框  双击操作会使其  变红  */
        /* 1. 定位元素 */
        WebElement username = driver.findElement(By.name("username"));
        /* 2. 将 需要点击的元素添加到 事件中 */
        Actions actions = new Actions(driver);
        actions.doubleClick(username)
                .build()
                .perform();

        /* 3. 执行点击操作 */
    }


    @AfterMethod
    public void close() {
//        driver.close();
    }
}
